﻿Imports ClasesRestaurante

Public Class FormRegistro

    Private Sub FormRegistro_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Limpiar()
    End Sub

    Private Sub Limpiar()
        txtNombreCliente.Text = ""
        txtContraseñaCliente.Text = ""
        txtRepetirContraseña.Text = ""
        txtEmail.Text = ""
        txtTarjeta.Text = ""
        txtFechaCaducidad.Text = ""

        lblPHNombre.Visible = True
        lblPHContraseña.Visible = True
        lblPHRepetirContraseña.Visible = True
        lblPHEmail.Visible = True
        lblPHNumeroTarjeta.Visible = True
        lblPHFechaCaducidad.Visible = True

    End Sub

    Private Sub TextBox_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtNombreCliente.GotFocus, txtContraseñaCliente.GotFocus, txtRepetirContraseña.GotFocus, txtEmail.GotFocus, txtTarjeta.GotFocus, txtFechaCaducidad.GotFocus

        Dim textBox = TryCast(sender, TextBox)

        Select Case textBox.Name
            Case "txtNombreCliente"
                lblPHNombre.Visible = False
            Case "txtContraseñaCliente"
                lblPHContraseña.Visible = False
            Case "txtRepetirContraseña"
                lblPHRepetirContraseña.Visible = False
            Case "txtEmail"
                lblPHEmail.Visible = False
            Case "txtTarjeta"
                lblPHNumeroTarjeta.Visible = False
            Case "txtFechaCaducidad"
                lblPHFechaCaducidad.Visible = False
        End Select

    End Sub
    Private Sub TextBox_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtNombreCliente.LostFocus, txtContraseñaCliente.LostFocus, txtRepetirContraseña.LostFocus, txtEmail.LostFocus, txtTarjeta.LostFocus, txtFechaCaducidad.LostFocus

        Dim textBox = TryCast(sender, TextBox)

        Select Case textBox.Name
            Case "txtNombreCliente"
                If textBox.Text.Length = 0 Then
                    lblPHNombre.Visible = True
                End If
            Case "txtContraseñaCliente"
                If textBox.Text.Length = 0 Then
                    lblPHContraseña.Visible = True
                End If
            Case "txtRepetirContraseña"
                If textBox.Text.Length = 0 Then
                    lblPHRepetirContraseña.Visible = True
                End If
            Case "txtEmail"
                If textBox.Text.Length = 0 Then
                    lblPHEmail.Visible = True
                End If
            Case "txtTarjeta"
                If textBox.Text.Length = 0 Then
                    lblPHNumeroTarjeta.Visible = True
                End If
            Case "txtFechaCaducidad"
                If textBox.Text.Length = 0 Then
                    lblPHFechaCaducidad.Visible = True
                End If
        End Select

    End Sub
    Private Sub label_MouseHover(ByVal sender As Object, ByVal e As System.EventArgs) Handles lblPHNombre.MouseHover, lblPHContraseña.MouseHover, lblPHRepetirContraseña.MouseHover, lblPHEmail.MouseHover, lblPHNumeroTarjeta.MouseHover, lblPHFechaCaducidad.MouseHover

        Dim label = TryCast(sender, Label)

        Select Case label.Name
            Case "lblPHNombre"
                lblPHNombre.Visible = False
            Case "lblPHContraseña"
                lblPHContraseña.Visible = False
            Case "lblPHRepetirContraseña"
                lblPHRepetirContraseña.Visible = False
            Case "lblPHEmail"
                lblPHEmail.Visible = False
            Case "lblPHNumeroTarjeta"
                lblPHNumeroTarjeta.Visible = False
            Case "lblPHFechaCaducidad"
                lblPHFechaCaducidad.Visible = False
        End Select

    End Sub

    Private Sub btnVolver_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnVolver.Click
        Me.Close()
    End Sub


    Private Sub btnRegistrar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnRegistrar.Click

        'Comprobar nombre del cliente
        If txtNombreCliente.Text = "" Then
            MessageBox.Show("Falta por introducir el nombre.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
            txtNombreCliente.Focus()
            Exit Sub
        End If

        'Comprobar contraseña del cliente
        If txtContraseñaCliente.Text = "" Then
            MessageBox.Show("Falta por introducir la contraseña.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
            txtContraseñaCliente.Focus()
            Exit Sub
        ElseIf txtContraseñaCliente.Text.Length < 4 Then
            MessageBox.Show("La contraseña tiene que tener mas de 4 caracteres", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
            txtContraseñaCliente.Clear()
            txtContraseñaCliente.Focus()
            Exit Sub
        End If

        'Comprobar repetir contraseña
        If txtContraseñaCliente.Text <> txtRepetirContraseña.Text Then
            MessageBox.Show("No coinciden las contraseñas", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
            txtContraseñaCliente.Clear()
            txtRepetirContraseña.Clear()
            txtContraseñaCliente.Focus()
            Exit Sub
        End If

        'Comprobar email
        If txtEmail.Text = "" Then
            MessageBox.Show("Falta por introducir el email.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
            txtEmail.Focus()
            Exit Sub
        End If

        'Comprobar tarjeta de credito
        If txtTarjeta.Text = "" Then
            MessageBox.Show("Falta por introducir el numero de tarjeta de credito.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
            txtTarjeta.Focus()
            Exit Sub
        ElseIf txtTarjeta.Text.Length <> 20 Then
            MessageBox.Show("Ese numero de tarjeta no es valido.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
            txtTarjeta.Clear()
            txtTarjeta.Focus()
            Exit Sub
        End If

        'Comprobar caducidad de tarjeta
        If txtFechaCaducidad.Text = "" Then
            MessageBox.Show("Falta por introducir la fecha de caducidad de la tarjeta.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
            txtFechaCaducidad.Focus()
            Exit Sub
        ElseIf Not IsDate(txtFechaCaducidad.Text) Then
            MessageBox.Show("La fecha de Caducidad tiene que tener un formato de fecha.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
            txtTarjeta.Clear()
            txtFechaCaducidad.Clear()
            Exit Sub
        ElseIf txtFechaCaducidad.Text < Date.Today Then
            MessageBox.Show("La tarjeta esta caducada.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
            txtTarjeta.Clear()
            txtFechaCaducidad.Clear()
            Exit Sub
        End If

        'Crear el cliente
        If ClientesRestaurante.ContainsKey(txtNombreCliente.Text) Then
            MessageBox.Show("Ese cliente ya existe", "Atención", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
            txtNombreCliente.Clear()
            txtNombreCliente.Focus()
            Exit Sub
        End If
        Dim cliente As New Cliente(txtNombreCliente.Text, txtContraseñaCliente.Text, txtEmail.Text, txtTarjeta.Text, txtFechaCaducidad.Text)
        ClientesRestaurante.Add(cliente.Nombre, cliente)
        Me.Close()


    End Sub

End Class